using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using Microsoft.Xna.Framework.Net;
using Microsoft.Xna.Framework.Storage;

namespace SpriteLib
{
    public interface ISprite
    {
        event EventHandler<SpriteEffectArg> OnStart;
        event EventHandler<SpriteEffectArg> OnEnd;

        Vector2 Position
        {
            get;
            set;
        }

        float Orientation
        {
            get;
            set;
        }

        Color Color
        {
            get;
            set;
        }

        float Scale
        {
            set;
            get;
        }
 
        void Draw(SpriteBatch spriteBatch);
        void Update(GameTime gameTime);
        void AddChildSprite(ISprite sprite);
        void AttachSpriteEffect(ISpriteEffect spriteEffect);
        void DetachSpriteEffect(ISpriteEffect spriteEffect);
        void RemoveAllSpriteEffects();


    }
}
